package model

import (
	"fmt"
	"time"

	"github.com/gin-gonic/gin"
	"github.com/jinzhu/gorm"
	_ "github.com/jinzhu/gorm/dialects/mysql"
)

var DB *gorm.DB

func Databass(connstrings string) {
	// 数据库的链接
	db, err := gorm.Open("mysql", connstrings)
	// gorm.Open初始化与数据库的连接
	// db是数据库对象可执行查询插入更新等操作
	if err != nil {
		panic("无法连接到数据库: " + err.Error())
	}
	fmt.Println("数据库连接成功")
	// fmt.Println(gin.Mode())    // 检查gin的运行模式
	db.LogMode(true)
	// 打印日志
	if gin.Mode() == "release" {
		// Gin Web 框架的一个函数，用于获取当前 Gin 的运行模式
		// 常见的模式有debug和release，发行版本不需要额外信息输出，给用户更好的体验
		db.LogMode(false)
	}
	db.SingularTable(true)                       // 创建的表名不加s
	db.DB().SetMaxIdleConns(20)                  // 设置连接池
	db.DB().SetMaxOpenConns(100)                 // 最大连接数
	db.DB().SetConnMaxLifetime(time.Second * 30) // 设置连接时间
	DB = db                                      // 把db赋值到全局的Db中
	migration()
}
